package xin.clips.system.service.gy;

import xin.clips.common.core.domain.Ztree;
import xin.clips.system.domain.gy.GyKnowBaseType;

import java.util.List;

/**
 * 知识库类型Service接口
 * 
 * @author yuanzy
 * @date 2023-02-28
 */
public interface IGyKnowBaseTypeService 
{
    /**
     * 查询知识库类型
     * 
     * @param id 知识库类型主键
     * @return 知识库类型
     */
    public GyKnowBaseType selectGyKnowBaseTypeById(Long id);

    /**
     * 查询知识库类型列表
     * 
     * @param gyKnowBaseType 知识库类型
     * @return 知识库类型集合
     */
    public List<GyKnowBaseType> selectGyKnowBaseTypeList(GyKnowBaseType gyKnowBaseType);

    /**
     * 新增知识库类型
     * 
     * @param gyKnowBaseType 知识库类型
     * @return 结果
     */
    public int insertGyKnowBaseType(GyKnowBaseType gyKnowBaseType);

    /**
     * 修改知识库类型
     * 
     * @param gyKnowBaseType 知识库类型
     * @return 结果
     */
    public int updateGyKnowBaseType(GyKnowBaseType gyKnowBaseType);

    /**
     * 批量删除知识库类型
     * 
     * @param ids 需要删除的知识库类型主键集合
     * @return 结果
     */
    public int deleteGyKnowBaseTypeByIds(String ids);

    /**
     * 删除知识库类型信息
     * 
     * @param id 知识库类型主键
     * @return 结果
     */
    public int deleteGyKnowBaseTypeById(Long id);

    /**
     * 查询知识类型树（排除下级）
     *
     * @param knowBaseType 知识库类型
     * @return 所有知识库类型信息
     */
    public List<Ztree> selectKnowTypeTreeExcludeChild(GyKnowBaseType knowBaseType);

    /**
     * 检查知识库是否唯一
     * @param knowBaseType
     * @return  false 表示存在重复 ,true表示不存在重复
     */
    public  boolean checkKnowBaseTypeUnique(GyKnowBaseType knowBaseType);

    /**
     * 查询知识库类型树
     * @param knowBaseType
     * @return
     */
    public List<Ztree> selectKnowTypeTree(GyKnowBaseType knowBaseType);






}
